package 策略模式.pkg02;

/**
 *
 *
 * 它也叫做上下文角色，起承上启下封装作用，屏蔽高层模块对策略、算法的直接访问， 封装可能存在的变化。
 *
 *
 *
 * 在这个场景中，三个妙计都有了，那还缺少两个配角：
 * 第一，妙计肯定要放到一个地方 吧，这么重要的东西要保管呀，也就是承装妙计的锦囊，所以俗称锦囊妙计嘛；
 * 第二，这些 妙计都要有一个执行人吧，是谁？当然是赵云了，妙计是小亮给的，执行者是赵云。
 * 赵云就 是一个干活的人，从锦囊中取出妙计，执行，然后获胜。
 * 过程非常清晰，我们把完整的过程 设计出来，
 * 在类图中增加了一个Context封装类（也就是锦囊），
 * 其作用是承装三个策略，方便赵云 使用，我们来看Context代码，
 */
public class Context {
    // 构造函数，你要使用哪个妙计
    private IStrategy strategy;

    public Context(IStrategy _strategy){
        this.strategy = _strategy;
    }
    // 使用计谋了，看我出招了
    public void doOperate(){
        this.strategy.operate();
    }
}
